package com.mall.goods.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mall.cart.model.Cart;
import com.mall.goods.model.Sku;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 商品SKU表 服务类
 * </p>
 *
 * @author Darren
 * @since 2022-08-18
 */
public interface ISkuService extends IService<Sku> {
    /**
     * 新增
     *
     * @param brand
     * @return
     */
    boolean addSku(Sku sku);

    /**
     * 根据id删除
     *
     * @param id
     * @return
     */
    boolean deleteById(String id);

    /**
     * 更新
     *
     * @param brand
     * @return
     */
    boolean updateSku(Sku sku);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    Sku getById(String id);

    /**
     * 根据条件查询全部数据
     *
     * @param brand
     * @return
     */
    List<Sku> selectList(Sku sku);

    /**
     * 分页查询
     *
     * @param brand
     * @return
     */
    Page<Sku> selectPage(Page<Sku> page, Sku sku);

    /**
     * 根据推广id查询Sku列表
     *
     * @param adItemType
     * @return
     */
    List<Sku> typeSkuItems(Integer adItemType);

    /**
     * 根据推广id删除Sku列表缓存
     *
     * @param adItemType
     */
    void delTypeSkuItems(Integer adItemType);

    /**
     * 根据推广id修改Sku列表缓存
     *
     * @param adItemType
     * @return
     */
    List<Sku> updateTypeSkuItems(Integer adItemType);

    /**
     * 减少商品库存
     * @param carts
     */
    void reduceSkuNum(List<Cart> carts);

}
